<?php
/**
 * Description of versie
 * 
 * Deze klasse zorgt ervoor dat het uiteindelijke sjabloon een versie krijgt. De klasse
 * wordt als eerst aangeroepen wanneer een sjabloon wordt opgeslagen. Wanneer er een sjabloon
 * wordt opgeslagen in de database door middel van zijn save-functie wordt er een instantie
 * gemaakt van deze klasse. De argumenten die worden meegegeven in de save-functie (sjabloon_versie_nummer en sjabloon_versie_beschrijving)
 * worden in de save-functie van de versie0klasse gebruikt om ze via DbVgpVersie in de database te zetten.
 *
 * @author Randy
 * @version 1.0
 * 
 * @category Cofely - Veiligheid & Gezondheids plan sjabloon
 * @uses DbVgpVersie, TextObject
 * 
 */

include_once(FILE_DB_VGP_VERSIE);

class Versie extends TextObject{
 
    /**
     * Het versienummer / revisienummer die mensen zelf in moeten vullen. Bijvoorbeeld "2.4.1".
     * @var String $versie_nr
     */
    private $versie_nr = '';
    /**
     * De versiebeschrijving / verandering die mensen zelf zelf in moeten vullen. Bijvoorbeeld "Risicogebied<naam> is veranderd". 
     * @var String $versie_beschrijving
     */
    private $versie_beschrijving = '';
    /**
     * Het versie_id die uit de database wordt gehaald (d.m.v. mysql_insert_id) wanneer er een nieuwe versie wordt opgeslagen.
     * @var int $versie_id 
     */
    private $versie_id = '' ;
    /**
     * Het object van de databaseklasse van Versie. 
     * @var DbVgpVersie $db_versie 
     */
    public  $db_versie = '';
    /**
     * De revisie van het sjabloon
     * @var String $revisie
     */
    private $revisie = '';
    
//Constructor    
    /**
     * De constructor. Wanneer versie_beschrijving leeg is wordt versie_beschrijving ingevuld.
     * Daarna wordt er een instantie gemaakt van de klasse DbVgpVersie zodat er later opgeslagen kan worden.
     * @param String $versie_beschrijving 
     */
    public function __construct($versie_beschrijving = ''){
        if(!empty($versie_beschrijving)){
            $this->setBeschrijving($versie_beschrijving);
        }
        
        $this->db_versie = new DbVgpVersie();       
    }

//Getters & Setters

    /**
     * Getter van $versie_nr
     * @return String $versie_nr
     */
    public function getVersie_nr() {
        return $this->versie_nr;
    }
    /**
     * Setter van $versie_nr
     * @param String $versie_nr 
     */
    public function setVersie_nr($versie_nr) {
        $this->versie_nr = $versie_nr;
    }
    /**
     * Getter van $versie_beschrijving
     * @return String $versie_beschrijving
     */
    public function getVersie_beschrijving() {
        return $this->versie_beschrijving;
    }
    /**
     * Setter van $versie_beschrijving
     * @param String $versie_beschrijving 
     */
    public function setVersie_beschrijving($versie_beschrijving) {
        $this->versie_beschrijving = $versie_beschrijving;
    }
    /**
     * Getter van $versie_id
     * @return int $versie_id
     */
    public function getVersie_id() {
        return $this->db_versie->getVersie_id();
    }
    /**
     * Setter van $versie_id
     * @param int $versie_id 
     */
    public function setVersie_id($versie_id) {
        $this->versie_id = $versie_id;
    }
    /**
     * Getter van $revisie
     * @return String revisie
     */
    public function getRevisie() {
        return $this->revisie;
    }
    /**
     * Setter van $revisie
     * @param String $revisie 
     */
    public function setRevisie($revisie) {
        $this->revisie = $revisie;
    }



//Database functies   
    /**
     * Save() functie die opslaat via het object van DbVgpVersie()
     * @param String $versie_nr
     * @param String $versie_beschrijving 
     */
    public function save(){

        $this->db_versie->save( $this->getVersie_nr(), $this->getVersie_beschrijving() );

    }
         
    /**
     * De functie die de laatste versie van het sjabloon ophaalt 
     */
    public function getLaatsteRevisie(){
    
        $this->revisie = $this->db_versie->getLaatsteRevisie();
        return $this->revisie;
    }
    
    public function getLaatsteVersieId(){
        $this->versie_id = $this->db_versie->getLaatsteVersieId();
        return $this->versie_id;
    }
}

?>
